App({
  globalData: {
    isLogin: false, // 全局登录状态
    token: '',      // 存储Token
    userInfo: {} ,
    baseUrl: 'http://localhost:8088'// 存储用户信息（登录后从后端获取）
  },

  // 小程序启动时，自动校验本地Token
  onLaunch() {
    this.checkLoginStatus();
  },

  // 校验登录状态（核心方法：判断本地Token是否存在）
  checkLoginStatus() {
    const token = wx.getStorageSync('token');
    console.log('token:', token);
    if (token) {
      // Token存在：更新全局状态（若后端有Token过期校验，可在此加接口请求验证有效性）
      this.globalData.isLogin = true;
      this.globalData.token = token;
      // （可选）获取用户信息：登录后拉取用户资料，存入globalData
      // this.getUserInfo();
    } else {
      // Token不存在：重置登录状态
      this.globalData.isLogin = false;
      this.globalData.token = '';
      this.globalData.userInfo = {};
    }
    return this.globalData.isLogin;
  },

  // 登录方法（对接后端/user/login接口）
  login(code, successCallback, failCallback) {
    const that = this;
    // 1. 调用后端登录接口（传入wx.login获取的code）
    wx.request({
      url: this.globalData.baseUrl +'/user/login', // 替换为实际后端接口地址
      method: 'POST',
      data: { code: code }, // 小程序登录code，后端用于获取openid
      success: (res) => {
        const { code: code, data, errorMsg } = res.data;
        console.log('code:', code);
        console.log('data:', data);
        console.log('errorMsg:', errorMsg);
        if (code === 0 && data) {
          // 2. 登录成功：存储Token+更新全局状态
          wx.setStorageSync('token', data);
          that.globalData.isLogin = true;
          that.globalData.token = data;
          that.globalData.userInfo = data.userInfo || {}; // 后端返回的用户信息
          // 3. 执行成功回调（如关闭弹窗、刷新页面）
          successCallback && successCallback();
          wx.showToast({ title: '登录成功' });
        } else {
          // 登录失败（如code无效）
          failCallback && failCallback(errorMsg || '登录失败，请重试');
          wx.showToast({ title: errorMsg || '登录失败', icon: 'none' });
        }
      },
      fail: (err) => {
        failCallback && failCallback('网络错误，请检查网络');
        wx.showToast({ title: '网络错误', icon: 'none' });
      }
    });
  },

  // 登出方法（清除Token+重置状态）
  logout() {
    wx.removeStorageSync('token');
    this.globalData.isLogin = false;
    this.globalData.token = '';
    this.globalData.userInfo = {};
    wx.showToast({ title: '已退出登录' });
  },

  // （可选）登录后拉取用户信息（对接后端用户信息接口）
  getUserInfo() {
    const that = this;
    wx.request({
      url: this.globalData.baseUrl +'/user/info', // 后端获取用户信息接口
      method: 'GET',
      header: {
        'Authorization': `Bearer ${that.globalData.token}` // 携带Token
      },
      success: (res) => {
        if (res.data.code === 200) {
          that.globalData.userInfo = res.data.data;
        }
      }
    });
  }
});